package com.zhentao.service;

import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;

/**
 * MinIO文件存储服务接口
 */
public interface MinioService {
    
    /**
     * 上传文件
     * @param file 文件
     * @param objectName 对象名称
     * @return 文件访问URL
     */
    String uploadFile(MultipartFile file, String objectName);
    
    /**
     * 上传图片文件
     * @param file 图片文件
     * @param folder 文件夹路径
     * @return 图片访问URL
     */
    String uploadImage(MultipartFile file, String folder);
    
    /**
     * 删除文件
     * @param objectName 对象名称
     */
    void deleteFile(String objectName);
    
    /**
     * 获取文件访问URL
     * @param objectName 对象名称
     * @return 文件访问URL
     */
    String getFileUrl(String objectName);
    
    /**
     * 检查文件是否存在
     * @param objectName 对象名称
     * @return 是否存在
     */
    boolean fileExists(String objectName);
    
    /**
     * 下载文件
     * @param objectName 对象名称
     * @return 文件输入流
     */
    InputStream downloadFile(String objectName);
}

